Data corruption occurs when data stored on a block of data on a disk is incorrect. Data corruption is a high risk and very high priority issue for any customer. Management of data corruption is a critical issue. Data corruption can include bit corruption (bit flip while data at store or in-flight), lost writes, misdirected writes, and torn/truncated writes. There are many conventional approaches to detection of data corruption depending on the layer where the data is managed.
A conventional host application layer has built-in mechanisms to detect data corruption or data integrity errors using multiple approaches (i.e., a data integrity field (DIF)). The interface protocol also defines multiple approaches to preserve data integrity or to detect data errors during data transmissions between host and target entities through protocol rules.
When data is transmitted from a host to a target controller, and a response is delivered to the host, the data is held within the controller and traverses through multiple hierarchical elements until the data is committed to the disk. The underlying hardware entities that store and forward the data, or the underlying firmware that manages the data in transit, are transparent to the higher layers. Any data integrity issue of the data in transit would need to be detected or managed within, since any corruption of data goes unnoticed even as the compromised data is written to the disk. Though the upper layer would detect a data corruption during subsequent reads using corresponding tagged DIF elements to the user data, such a system is highly complicated to analyze the exact source of the low level corruption that compromised the data in transit. At best, such detection involves complex sequence of steps in a controlled environment to eliminate the data corruption cause.
It would be desirable to implement a system to flag/detect the source of data corruption, and/or to preserve the indicators to assist during field analysis. It would also be desirable to implement a system and/or method to flag source of data corruption in storage subsystem using persistent source identifier bits.